package com.itheima.aop;//package com.itheima.aop;
//
//import lombok.extern.slf4j.Slf4j;
//import org.aspectj.lang.ProceedingJoinPoint;
//import org.aspectj.lang.annotation.*;
//import org.springframework.stereotype.Component;
//
//@Aspect
//@Component
//@Slf4j
//public class TimeAspect {
//
////    @Pointcut("execution(* com.itheima.controller.EmpController.*(..))")
//    @Pointcut("@annotation(com.itheima.aop.MyLog)")
//    public void pt(){
//    }
//
//
//    @Around("execution(* com.itheima.controller.DeptController.*(..))")
//    public Object recordTime(ProceedingJoinPoint joinPoint) throws Throwable {
//        long begin = System.currentTimeMillis();
//        log.info("环绕通知（环绕前）开始开始执行");
//        Object Result = joinPoint.proceed();
//        log.info("环绕通知（环绕后）开始执行");
//        long end = System.currentTimeMillis();
//
////        方法签名耗时
//        log.info("{}耗时{}毫秒", joinPoint.getSignature().getName(), (end - begin));
//        return Result;
//    }
//    @Before("pt()")
//    public void before() {
//        log.info("before前置通知执行");
//    }
//
//    @After("pt()")
//    public void after() {
//        log.info("after后置通知执行");
//    }
//
//    @AfterReturning("pt()")
//    public void afterReturning() {
//        log.info("afterReturning返回后通知执行");
//    }
//
//    @AfterThrowing("pt()")
//    public void afterThrowing() {
//        log.info("afterThrowing异常通知执行");
//    }
//}
